1
シンプルなマッチングを超えて
AI034Lesson 18
00:00

Rustでは、パターンマッチングは制御フローの分岐というだけではありません—それはまさに バインディングのアーキテクチャです。変数を宣言するたび、または関数を定義するたびに、あなたはパターンマッチングを行っているのです。

1. バインディングの本質

私たちが let x = 5;と書いたとき、単に値を代入しているわけではありません。値 5 に対して 不可逆パターンxというパターンを照合しています。なぜなら x は任意の値を表せる名前だから、照合は常に成功し、 ローカルバインディングを生成します。

2. パターン付きパラメータ(リスト18-6)

最も深い理解の一つは、 関数シグネチャはパターンであるということです。シグネチャ fn foo(x: i32)において、コードは i32 を期待し、パターン x を使って渡された引数をバインドします。つまり、すべての関数呼び出しは、本質的に一腕のマッチイベントなのです。

let x = 5;ローカルバインディングfn foo(x: i32)関数パラメータ同じ論理パターン:引数を'x'にバインド

3. パターンの普遍性

パターンは matchにとどまりません。 for ループ(タプルのデストラクチャリング)、 while let 条件文、さらには if let 式にも現れます。この ローカルバインディング 原則により、構造体からデータを抽出する場合でも、ハッシュマップを反復処理する場合でも、Rustのコードは一貫して表現力豊かになります。

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>